Release 10.1A: OpenEdge Data Management:
SQL Reference


Query Expressions syntax in BNF

Query expression

Syntax

query_expression ::=
query_specification
  |  query_expression set_operator query_expression
  |  ( query_expression ) 

Set operator

Syntax
set_operator ::=
{ UNION [ ALL ] | INTERSECT | MINUS } 

Query specification

Syntax

query_specification ::= 
SELECT [ ALL | DISTINCT ] 
  { * 
     | { table_name.| alias.}* [, { table_name.| alias.}* ]  ,... 
     | expr [ [ AS ] [ ']column_title[' ] ] 
        [, expr [ [ AS ] [ ']column_title[' ] ] ] ,... 
  } 
FROM table_ref [, table_ref ] ... 
[ WHERE search_condition ] 
[ GROUP BY [ table.]column_name  
  [, [ table.]column_name ] ,... 
[ HAVING search_condition ] 
[WITH locking_hints ] 
; 

Table reference

Syntax
table_ref ::=
table_name [ AS ] [ alias [ (column_alias [, ... ] ) ] ] 
  | (query_expression) [ AS ] alias [ (column_alias [ ,... ] ) ] 
  | [ ( ] joined_table [ ) ] 

Joined table

Syntax
joined_table ::=
{ table_ref CROSS JOIN table_ref
  |table_ref [ INNER | LEFT [ OUTER ] ] JOIN
    table_ref ON search_condition
} 

From clause inner join

Syntax
from_clause_inner_join ::=
{ FROM table_ref CROSS JOIN table_ref
  | FROM table_ref [ INNER ] JOIN table_ref 
    ON search_condition
} 

Where clause inner join

Syntax
where_clause_inner_join ::=
FROM table_ref, table_ref WHERE search_condition 

From clause outer join

Syntax
from_clause_outer_join ::=
FROM table_ref LEFT OUTER JOIN table_ref
  ON search_condition 

Where clause outer join

Syntax
where_clause_outer_join ::=
WHERE [ table_name.]column (+) = [ table_name.]column
  | WHERE [ table_name.]column = [ table_name.]column (+) 


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095